package com.imufe.chemicalenterprisedangerwarning.service;

import com.imufe.chemicalenterprisedangerwarning.entity.po.UserPO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.imufe.chemicalenterprisedangerwarning.entity.query.LoginQuery;
import com.imufe.chemicalenterprisedangerwarning.entity.vo.SafetySupervisionBureauUserDetailedVO;
import com.imufe.chemicalenterprisedangerwarning.entity.vo.UserDetailedVO;
import com.imufe.chemicalenterprisedangerwarning.exception.UserException;

import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author BaiBan
 * @since 2022-10-09
 */
public interface UserService extends IService<UserPO> {

    /**
     * 用户登录
     * @param login 用户名和密码
     * @return token
     */
    String login(LoginQuery login) throws UserException;

    /**
     * 用户详细信息
     * @param id 用户编号
     * @return 普通用户
     */
    UserDetailedVO detailed(Long id);

    /**
     * 安检局用户详细信息
     * @param id 用户编号
     * @return 安监局用户
     */
    SafetySupervisionBureauUserDetailedVO safetySupervisionBureauUserDetailed(Long id);

    /**
     * 获取用户权限
     * @param userId 用户id
     * @return 用户权限集合
     */
    List<String> getUserAuthorities(Long userId);

    /**
     * 获取用户的组织
     */
    String getUserOrganization(Long userId);
}
